﻿/*************************************
 * Creator:SW-PeiYang
 * DateTime:2025/8/27 14:22:42
 * Description:<Description>
 * CopyRight:中广核研究院有限公司
 * ***********************************/

namespace SunnyPaine.Autofac.Extension.Mvvm.UI
{
    /// <summary>
    /// 指定用户单击哪个消息框按钮。
    /// </summary>
    public enum SPMessageBoxResult
    {
        /// <summary>
        /// 消息框中不返回任何结果。
        /// </summary>
        None = 0,
        /// <summary>
        /// 消息框中的结果值：确定。
        /// </summary>
        OK = 1,
        /// <summary>
        /// 消息框中的结果值：取消。
        /// </summary>
        Cancel = 2,
        /// <summary>
        /// 消息框中的结果值：是。
        /// </summary>
        Yes = 6,
        /// <summary>
        /// 消息框中的结果值：否。
        /// </summary>
        No = 7
    }

    /// <summary>
    /// 指定用户单击哪个消息框按钮。
    /// </summary>
    public enum SPMessageBoxButton
    {
        /// <summary>
        /// 消息框的值：确定。
        /// </summary>
        OK,
        /// <summary>
        /// 消息框的值：确定，取消。
        /// </summary>
        OKCancel,
        /// <summary>
        /// 消息框的值：是，否，取消。
        /// </summary>
        YesNoCancel,
        /// <summary>
        /// 消息框的值：是，否。
        /// </summary>
        YesNo
    }

    /// <summary>
    /// 用于显示消息框。
    /// </summary>
    public interface IMessageBoxService
    {
        /// <summary>
        /// 显示一个消息框，具有一条自定义消息，并返回消息框按钮结果。
        /// </summary>
        /// <param name="messageBoxText">消息。</param>
        /// <returns></returns>
        SPMessageBoxResult Show(string messageBoxText);
        /// <summary>
        /// 显示一个消息框，具有一条自定义消息和自定义标题栏标题，并返回消息框按钮结果。
        /// </summary>
        /// <param name="messageBoxText">消息。</param>
        /// <param name="caption">标题。</param>
        /// <returns></returns>
        SPMessageBoxResult Show(string messageBoxText, string caption);
        /// <summary>
        /// 
        /// 显示一个消息框，具有一条自定义消息、自定义标题栏标题和自选消息框按钮，并返回消息框按钮结果。
        /// </summary>
        /// <param name="messageBoxText"></param>
        /// <param name="caption"></param>
        /// <param name="button"></param>
        /// <returns></returns>
        SPMessageBoxResult Show(string messageBoxText, string caption, SPMessageBoxButton button);
    }
}
